home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Java for 3D & VRML Worlds
/
Java for 3d and VRML Worlds.iso
/
examples
/
chap06
/
DynamicGen.java
< prev
next >
Wrap
Text File
|
1996-09-27
|
2KB
|
62 lines
//
// dynamic generation of geometry nodes
//
import java.util.*;
import vrml.*;
import vrml.node.*;
import vrml.field.*;
public class DynamicGen extends Script{
MFNode addSphere;
Random randomNumGenerator = new Random();
float posX = 0.0f;
public void initialize(){
// get the reference of the event-out 'addSphere'.
addSphere = (MFNode)getEventOut("addSphere");
}
public void processEvent(Event e){
if(e.getName().equals("touched") == true){
String sphereDesc1 =
"Transform {" +
" translation ";
String sphereDesc2 =
" 0.0 0.0 " +
" children[" +
" Shape{geometry Sphere{}" +
" appearance Appearance{" +
" material Material{diffuseColor ";
String sphereDesc3 =
" }" +
" }" +
" }" +
" ]" +
"}";
float red = randomNumGenerator.nextFloat();
float green = randomNumGenerator.nextFloat();
float blue = randomNumGenerator.nextFloat();
Browser browser = getBrowser();
BaseNode baseNodes[];
// next position.
posX += 3.0f;
try{
baseNodes = browser.createVrmlFromString(sphereDesc1 + posX +
sphereDesc2 + red + " " +
green + " " +
blue + sphereDesc3);
if(null != baseNodes) {
addSphere.setValue(baseNodes);
}
} catch (Exception ex) {
ex.printStackTrace() ;
}
}
}
}